The present invention relates generally to integrated circuit (IC) designs, and, more particularly, to layout-based circuit sanity checks.
As the feature size of integrated circuits (ICs or simply circuits) continues to shrink, more and more ICs with more complex designs, such as system-on-chip (SoC), can be packed into a given semiconductor die size. IC designs are increasingly relying upon computer-aided-design (CAD) tools for circuit designs, mask layouts, as well as sanity checks at all steps of the design process.
In fabrication of ICs, each processing step involving photolithography often uses a “mask”, which comprises a set of geometric patterns typically representing an addition or deletion of materials such as metal, polysilicon, or substrate in a finished IC. Through the photolithography, the patterns are made to the semiconductor substrate, which eventually become the IC.
If a mistake is made in a design, debugging the finished chip is very difficult and time consuming. Once “bugs” are found, a new revision of the IC design is generated, and there are certain inevitable revisions that have to be made to the masks as well. The cost for changing the mask nowadays is very expensive. Accordingly, circuit designers currently employ design checking tools to ensure the design is relatively “clean” with correct functionality and robustness for anticipated process variations.
A traditional gate level IC design flow follows. Firstly, designers create a set of schematic diagrams (or schematics for short) based on product requirements. Secondly, a SPICE (Simulation Program with Integrated Circuits Emphasis) netlist is generated from the schematic diagrams for running various simulations, such as timing and power, etc., on the design. A “netlist” is a file describing the connectivity of various instances and their attributes in a circuit design. Then, a layout is generated based on the set of schematic diagrams. The layout is a graphic drawing based on which mask layers can be produced. In design, a digitized representation of an image of a mask is commonly called a “mask layer” or simply a “layer”. Due to the complexity of the designs, CAD tools are used by engineers to produce a correct layout. In general, these CAD tools are called DRC/ERC (design rule check/electrical rule check) and LVS (layout vs. schematic). DRC/ERC checks layout's conformance and correctness to the requirements of a given process and LVS checks the layouts' conformance to the schematics.
However, the traditional gate level IC design flow has certain limitations such as SPICE models for simulation and mainly covers inter-die variations, and not intra-die variations. Intra-die variations cause difficulty in predicting circuit functionality of those dynamic circuits sensitive to any leakage with SPICE models. Sub-threshold leakage along with intra-die variations, which have become a serious problem as device channel length, threshold voltage and power supply voltage are scaling down. For a large SoC design, block interface circuitries are also not easy to check by SPICE simulation.
Accordingly, in a traditional gate level IC design flow, a fundamental assumption is that the schematic diagrams created by the designers are both functionally and electrically correct, and all the steps subsequent to the schematics are checked against the schematics for correctness. However, if the schematics have a logic error or tend to create excessive sub-threshold leakage, then all the DRC/ERC and LVS just cannot do anything about the error or the leakage. Unfortunately, the schematics are created by human beings, and in a large SoC design with millions of transistors, errors and oversights are almost inevitable.
Another issue is known as design marginality. Certain circuits, such as dynamic circuits and feedback-type circuits are more sensitive to process variations. Accordingly, robust designs for such circuits are even more critical.
Other high level designs, such as RTL (register transfer logic), employs logic synthesis and requires a person to create the circuit description. The building blocks of the high level design are still gate level circuits, and block interfaces are even more of a concern.
Accordingly, there is a need for an improved design sanity checker to help designers screen out problematic circuits due to human errors or oversights in an IC design.